home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-17 | 950 b | 46 lines | [TEXT/MPS ] |
- Perl -Sx "{0}" {"Parameters"}; Exit {Status}
- #!perl
-
- use File::Find;
- use File::Path;
- use File::Copy;
- use AutoSplit;
-
- if ($#ARGV == -1) {
- chomp($dir = `pwd`);
- unshift(@ARGV, $dir);
- }
-
- if ($MacPerl::Version =~ /MPW/) {
- $dirs{lib} = "$ENV{MPW}Libraries:Perl";
- } else {
- $dirs{lib} = "$ENV{MACPERL}lib";
- }
-
- foreach $dir (@ARGV) {
- $dir .= ":" unless ($dir =~ /:$/);
- $dir .= "blib";
-
- opendir(DIR, $dir);
- while ($d = readdir(DIR)) {
- next unless -d "$dir:$d";
- $fromdir = "$dir:$d";
- $todir = $dirs{$d};
- find(\©it, $fromdir);
- }
- closedir(DIR);
- }
-
- sub copyit {
- local($_) = $_;
- my($newdir,$auto,$name) = ($File::Find::dir, $File::Find::dir, $File::Find::name);
- $newdir =~ s/\Q$fromdir\E/$todir/;
- $auto =~ s/.*\Q$fromdir\E/$todir:auto/;
- $name =~ s/.*\Q$fromdir\E//;
- return if -d $_;
- printf("\t%-20s -> %s\n", $name, $newdir);
- mkpath($newdir, 1);
- copy($_, "$newdir:$_") || die $^E;
- autosplit("$newdir:$_", $auto) if /\.pm$/;
- }
-